popover menu: Add an api for adding submenus
authorMatthias Clasen <mclasen@redhat.com>
Wed, 27 Mar 2019 21:52:51 +0000 (17:52 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 27 Mar 2019 21:53:48 +0000 (17:53 -0400)
This is a step towards removing the submenu
child property.

docs/reference/gtk/gtk4-sections.txt
gtk/gtkpopovermenu.c
gtk/gtkpopovermenu.h

index e2820d1291ba7310a05430ed4eb42b14480ce03b..a144cabbf14f150d273ebabec7ebd2da0e1abe7a 100644 (file)
@@ -6522,6 +6522,7 @@ gtk_popover_get_type
 <TITLE>GtkPopoverMenu</TITLE>
 GtkPopoverMenu
 gtk_popover_menu_new
+gtk_popover_menu_add_submenu
 gtk_popover_menu_open_submenu
 
 <SUBSECTION Standard>
index b5e0d47a2ee9683bf959b6a69699431e637b0225..2bfa67c944caaa416a88c28699405f5b273daeb5 100644 (file)
@@ -384,3 +384,23 @@ gtk_popover_menu_open_submenu (GtkPopoverMenu *popover,
   stack = gtk_bin_get_child (GTK_BIN (popover));
   gtk_stack_set_visible_child_name (GTK_STACK (stack), name);
 }
+
+/**
+ * gtk_popover_menu_add_submenu:
+ * @popover: a #GtkPopoverMenu
+ * @submenu: a widget to add as submenu
+ * @name: the name for the submenu
+ *
+ * Adds a submenu to the popover menu.
+ */
+void
+gtk_popover_menu_add_submenu (GtkPopoverMenu *popover,
+                              GtkWidget      *submenu,
+                              const char     *name)
+{
+  GtkWidget *stack;
+
+  stack = gtk_bin_get_child (GTK_BIN (object));
+
+  gtk_stack_add_named (GTK_STACK (stack), submenu, name);
+} 
index c920f5c6271bb172b71fcf7001c5b8baa4959632..bf041b02ea2ba916462be58faf07d227d5ad7c91 100644 (file)
@@ -52,9 +52,13 @@ GType       gtk_popover_menu_get_type (void) G_GNUC_CONST;
 GDK_AVAILABLE_IN_ALL
 GtkWidget * gtk_popover_menu_new      (void);
 
+GDK_AVAILABLE_IN_ALL
+void        gtk_popover_menu_add_submenu (GtkPopoverMenu *popover,
+                                          GtkWidget      *menu,
+                                          const char     *name);
 GDK_AVAILABLE_IN_ALL
 void        gtk_popover_menu_open_submenu (GtkPopoverMenu *popover,
-                                           const gchar    *name);
+                                           const char     *name);
 
 
 G_END_DECLS